import { FolderApi } from '@/api/infra/file'
const useInlineRename = (initInfo, initFolder) => {
  const { error, success } = useMessage()
  // 定义行内重命名input框DOM对象
  const setTitleInputRef = el => {
    if (el) {
      initInfo.value.titleInputRefs.push(el)
    }
  }

  // 触发行内重命名编辑
  const titleEdit = v => {
    initInfo.value.titleInputRefs = []
    initInfo.value.sourceList.forEach(item => {
      if (item.id === v.id && item.isFolder === v.isFolder) {
        item.isTitleEdit = true
        nextTick(() => {
          initInfo.value.titleInputRefs[0].focus()
        })
      }
    })
  }

  // 行内重命名保存
  const titleSave = v => {
    initInfo.value.sourceList.forEach(item => {
      if (item.id === v.id && item.isFolder === v.isFolder) {
        item.isTitleEdit = false
        initInfo.value.titleInputRefs = []
      }
    })
    if (v.isFolder) {
      if (v.title === '') {
        error('文件夹名称不能为空')
        return false
      }
      FolderApi.update({ id: v.id, folder_id: v.folder_id, title: v.title }).then((res: any) => {
        if (res.code === 200) {
          success('文件夹重命名成功！')
          initFolder()
        }
      })
    }
  }

  return {
    setTitleInputRef,
    titleEdit,
    titleSave
  }
}
export default useInlineRename
